package com.ys.web.ws.send.service;

import com.ys.web.ws.bean.MessageRequestBean;
import com.ys.web.ws.bean.MessageResponseBean;
import com.ys.web.ws.send.vo.QueryHistoryVo;

import java.util.List;

/**
 * @author quxinjun
 * @version 1.0.0
 * @ClassName MessageService.java
 * @Description MessageService
 * @createTime 2021年05月06日 17:33:00
 */
public interface MessageService {

    /**
     * @param messageRequestBean 消息实体
     * @title sendMessageUser
     * @description 发送消息给指定用户
     * @author quxinjun
     * @updateTime 2021/5/10 13:58
     */
    void sendMessageUser(MessageRequestBean messageRequestBean,long uid);

    /**
     * @param messageRequestBean 消息实体
     * @title sendMessageGroup
     * @description 发送消息给指定组
     * @author quxinjun
     * @updateTime 2021/5/10 14:01
     */
    void sendMessageGroup(MessageRequestBean messageRequestBean);

    /**
     * @param messageRequestBean 消息实体
     * @title sendMessageSystem
     * @description 发送系统消息给所有用户
     * @author quxinjun
     * @updateTime 2021/5/10 14:03
     */
    void sendMessageSystem(MessageRequestBean messageRequestBean);

    /**
     * @param uid 用户id
     * @title clickToReadMessage
     * @description 用户点击面板修改未读消息为已读
     * @author quxinjun
     * @updateTime 2021/5/11 16:57
     */
    void clickToReadMessage(Long uid);

    /**
     * @param uid 用户id
     * @title getSingleChatUnRead
     * @description 获取用户未读消息集合
     * @author quxinjun
     * @updateTime 2021/5/13 14:24
     * @return: java.util.List<com.ys.web.ws.bean.MessageResponseBean>
     */
    List<MessageResponseBean> getSingleChatUnRead(Long uid);

    /**
     * @param uid 用户id
     * @title getUserApplyList
     * @description 获取用户好友申请列表集合
     * @author quxinjun
     * @updateTime 2021/5/13 14:38
     * @return: java.util.List<com.ys.web.ws.bean.MessageResponseBean>
     */
    List<MessageResponseBean> getUserApplyList(Long uid);

    /**
     * @param uid 用户id
     * @title getGroupChatUnRead
     * @description 获取用户组消息历史记录
     * @author quxinjun
     * @updateTime 2021/5/13 14:39
     * @return: java.util.List<com.ys.web.ws.bean.MessageResponseBean>
     */
    List<MessageResponseBean> getGroupChatUnRead(Long uid);

    /**
     * @param uid 用户id
     * @title updateChat
     * @description 更新用户最新聊天信息
     * @author quxinjun
     * @updateTime 2021/5/19 11:06
     */
    void updateChat(Long uid);

    /**
     * @param uid 用户id
     * @title getUserNoticeList
     * @description 获取用户缓存中的通知信息
     * @author quxinjun
     * @updateTime 2021/5/25 11:37
     * @return: java.util.List<com.ys.web.ws.bean.MessageResponseBean>
     */
    List<MessageResponseBean> getUserNoticeList(Long uid);

    /**
     * @param uid 用户id
     * @title getClearList
     * @description 获取用户需要清理的数据
     * @author quxinjun
     * @updateTime 2021/6/4 20:12
     * @return: java.util.List<com.ys.web.ws.bean.MessageResponseBean>
     */
    List<MessageResponseBean> getClearList(Long uid);

    /**
     * @param messageRequestBean
     * @title undoMessage
     * @description 消息撤回
     * @author quxinjun
     * @updateTime 2021/6/7 15:08
     */
    void undoMessage(String uid,MessageRequestBean messageRequestBean);

    List<MessageResponseBean> queryHistoryChatGroup(Long uid, QueryHistoryVo queryHistoryVo);

    List<MessageResponseBean> queryHistorySingleChat(Long uid, QueryHistoryVo queryHistoryVo);

    void freezeGroupAndUserCreate();

    void query();

    void groupMessage();
}
